package com.junchenrobot.mes.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 任务表
 *
 * @author SeaWave
 * @date 2022/11/28
 */
@Getter
@Setter
@Builder
@ToString
public class WinderTask implements Serializable {
    
    /**
     * id
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)

    private Long id;
    
    /**
     * 任务编号
     */
    @TableField("task_code")
    private String taskCode;
    
    /**
     * 卷绕机任务id
     */
    @TableField("task_winder_id")
    private Long taskWinderId;
    
    /**
     * 卷绕机流水号
     */
    @TableField("task_winder_lsh")
    private String taskWinderLsh;
    
    /**
     * 卷绕机线号
     */
    @TableField("task_winder_line")
    private Integer taskWinderLine;
    
    /**
     * 卷绕机号
     */
    @TableField("task_winder_spinning_code")
    private Integer taskWinderSpinningCode;
    
    /**
     * 支杆编号 1-左 2-右
     */
    @TableField("task_pole_code")
    private Integer taskPoleCode;
    
    /**
     * 任务目标点位
     */
    @TableField("task_location")
    private String taskLocation;
    
    /**
     * 设备id
     */
    @TableField("task_device_id")
    private Long taskDeviceId;
    
    /**
     * 设备名称
     */
    @TableField("task_device_name")
    private String taskDeviceName;
    
    /**
     * 任务类型 0-移动 1- 取料 2-放料
     */
    @TableField("task_type")
    private Integer taskType;
    
    /**
     * 任务开始时间
     */
    @TableField("task_start_time")
    private LocalDateTime taskStartTime;
    
    /**
     * 任务结束时间
     */
    @TableField("task_finished_time")
    private LocalDateTime taskFinishedTime;
    
    /**
     * 任务执行状态 -1-待执行 0-正在执行 1-等待取料 2-等待放料 3-执行完成 4-执行异常
     */
    @TableField("task_execute_status")
    private Integer taskExecuteStatus;
    
    /**
     * 任务备注
     */
    @TableField("task_remark")
    private String taskRemark;
    
    /**
     * 逻辑删除
     */
    @TableLogic
    @TableField("delete_flag")
    private Integer deleteFlag;

    /**
     * 任务报警时间
     */
    @TableField("task_warn_time")
    private  LocalDateTime taskWarnTime;
    /**
     * 数据创建时间
     */
    @TableField(value = "data_create_time", fill = FieldFill.INSERT)
    private LocalDateTime dataCreateTime;
    
    /**
     * 数据更新时间
     */
    @TableField(value = "data_update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime dataUpdateTime;
    
}
